package com.itheima.domain;


import com.itheima.controller.groups.GroupA;
import com.itheima.controller.groups.GroupB;
import lombok.Data;


import javax.validation.Valid;
import javax.validation.constraints.*;

@Data
public class Employee{
    //设定校验器，设置校验不通过对应的消息，设定所参与的校验组
    @NotBlank(message = "姓名不能为空")
    private String name;//员工姓名

    //一个属性可以添加多个校验器
    @NotNull(message = "请输入您的年龄")
    @Max(value = 60,message = "年龄最大值不允许超过60岁")
    @Min(value = 18,message = "年龄最小值不允许低于18岁")
    private Integer age;//员工年龄

    //实体类中的引用类型通过标注@Valid注解，设定开启当前引用类型字段中的属性参与校验
    @Valid
    @NotNull(message = "请输入地址")
    private Address address;

    @AssertFalse(message = "必须为false")
    private Boolean flag;
    /**
     * 如果为空则不校验，如果不为空则校验
     */
    @Pattern(regexp="^[0-9]{4}-[0-9]{2}-[0-9]{2}$",message="出生日期格式不正确")
    private String birthday;

    @Override
    public String toString() {
        final StringBuilder sb = new StringBuilder("{");
        sb.append("\"name\":\"")
                .append(name).append('\"');
        sb.append(",\"age\":")
                .append(age);
        sb.append(",\"address\":")
                .append(address);
        sb.append(",\"flag\":")
                .append(flag);
        sb.append(",\"birthday\":\"")
                .append(birthday).append('\"');
        sb.append('}');
        return sb.toString();
    }
}
